<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>tinyOS: tTask.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">tinyOS
   &#160;<span id="projectnumber">v1.00</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('t_task_8h_source.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="headertitle">
<div class="title">tTask.h</div>  </div>
</div><!--header-->
<div class="contents">
<a href="t_task_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="preprocessor">#ifndef TTASK_H</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="preprocessor">#define TTASK_H</span></div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gae9796d3f7bdb820b16b7ca53a44bcbd0">   17</a></span>&#160;<span class="preprocessor">#define TINYOS_TASK_STATE_RDY                   0</span></div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga7e6e2156119d44e75177073ff1feb2fc">   18</a></span>&#160;<span class="preprocessor">#define TINYOS_TASK_STATE_DESTROYED             (1 &lt;&lt; 0)</span></div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga1a73506e326a6f9a58f3a07172c400a3">   19</a></span>&#160;<span class="preprocessor">#define TINYOS_TASK_STATE_DELAYED               (1 &lt;&lt; 1)</span></div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gadec95d3273fe8be8c4018c9da38ebbc2">   20</a></span>&#160;<span class="preprocessor">#define TINYOS_TASK_STATE_SUSPEND               (1 &lt;&lt; 2)</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gab663c09edc989829da8ab2f037b99b11">   22</a></span>&#160;<span class="preprocessor">#define TINYOS_TASK_WAIT_MASK                   (0xFF &lt;&lt; 16)</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment">// 前置声明</span></div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gad85a7244ee07814c23914d3cfcc91412">   25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct__t_event.html">_tEvent</a>;</div><div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment">// Cortex-M的堆栈单元类型：堆栈单元的大小为32位，所以使用uint32_t</span></div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">typedef</span> uint32_t <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gad85a7244ee07814c23914d3cfcc91412">tTaskStack</a>;</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="comment">// 任务结构：包含了一个任务的所有信息</span></div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="struct__t_task.html">   31</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__t_task.html">_tTask</a> {</div><div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;    <span class="comment">// 任务所用堆栈的当前堆栈指针。每个任务都有他自己的堆栈，用于在运行过程中存储临时变量等一些环境参数</span></div><div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;    <span class="comment">// 在tinyOS运行该任务前，会从stack指向的位置处，会读取堆栈中的环境参数恢复到CPU寄存器中，然后开始运行</span></div><div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;    <span class="comment">// 在切换至其它任务时，会将当前CPU寄存器值保存到堆栈中，等待下一次运行该任务时再恢复。</span></div><div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160;    <span class="comment">// stack保存了最后保存环境参数的地址位置，用于后续恢复</span></div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="struct__t_task.html#a1abf78464029077a8080178b9e04745c">   36</a></span>&#160;    uint32_t *<a class="code" href="struct__t_task.html#a1abf78464029077a8080178b9e04745c">stack</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="struct__t_task.html#a57eb489f59ea6a56ccff2efea7f92c33">   37</a></span>&#160;    uint32_t *<a class="code" href="struct__t_task.html#a57eb489f59ea6a56ccff2efea7f92c33">stackBase</a>;                </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="struct__t_task.html#ae20ace955faaa4fb797b69b75feef3d3">   39</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#ae20ace955faaa4fb797b69b75feef3d3">stackSize</a>;                 </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="struct__t_task.html#ab9a5b93b6f7bf200c776df8731d99133">   40</a></span>&#160;    <a class="code" href="struct__t_node.html">tNode</a> <a class="code" href="struct__t_task.html#ab9a5b93b6f7bf200c776df8731d99133">linkNode</a>;                     </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="struct__t_task.html#a0c1ef2b42e60232fd2355246df290c68">   42</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#a0c1ef2b42e60232fd2355246df290c68">delayTicks</a>;                </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="struct__t_task.html#a069fafc88eadffde425a5d9fc895d85a">   43</a></span>&#160;    <a class="code" href="struct__t_node.html">tNode</a> <a class="code" href="struct__t_task.html#a069fafc88eadffde425a5d9fc895d85a">delayNode</a>;                    </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="struct__t_task.html#a6871573fefee3ad102e26a09e7a2f493">   45</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#a6871573fefee3ad102e26a09e7a2f493">prio</a>;                      </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="struct__t_task.html#a1b0c7bd4d79798ef4e0ce23894c9aeb2">   47</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#a1b0c7bd4d79798ef4e0ce23894c9aeb2">state</a>;                     </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="struct__t_task.html#a4fe7f19d35a11368d300b99348451fdd">   48</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#a4fe7f19d35a11368d300b99348451fdd">slice</a>;                     </div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="struct__t_task.html#a70023864793bcef3ab18d4a66832ca6d">   50</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#a70023864793bcef3ab18d4a66832ca6d">suspendCount</a>;              </div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct__t_task.html#a9350eb6ea9f174b0711e8835a1543a87">   52</a></span>&#160;    void (*<a class="code" href="struct__t_task.html#a9350eb6ea9f174b0711e8835a1543a87">clean</a>) (<span class="keywordtype">void</span> *param);        </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="struct__t_task.html#a365a4afcd9963180dadf380e9edde369">   53</a></span>&#160;    <span class="keywordtype">void</span> *<a class="code" href="struct__t_task.html#a365a4afcd9963180dadf380e9edde369">cleanParam</a>;                   </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="struct__t_task.html#a3b197900b58be56e296d46207dec079f">   54</a></span>&#160;    uint8_t <a class="code" href="struct__t_task.html#a3b197900b58be56e296d46207dec079f">requestDeleteFlag</a>;          </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="struct__t_task.html#a61a5517ac5c5a5149cf4b7d438e5c859">   57</a></span>&#160;    <span class="keyword">struct </span><a class="code" href="struct__t_event.html">_tEvent</a> *<a class="code" href="struct__t_task.html#a61a5517ac5c5a5149cf4b7d438e5c859">waitEvent</a>;          </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="struct__t_task.html#ae1ae004c581e0cc9fd22662535700001">   58</a></span>&#160;    <span class="keywordtype">void</span> *<a class="code" href="struct__t_task.html#ae1ae004c581e0cc9fd22662535700001">eventMsg</a>;                     </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="struct__t_task.html#a37707d87e42a484588393e5b3683ffbb">   59</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#a37707d87e42a484588393e5b3683ffbb">waitEventResult</a>;           </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="struct__t_task.html#a35ba8bba537f36efd05f084a5531825a">   60</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#a35ba8bba537f36efd05f084a5531825a">waitFlagsType</a>;             </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="struct__t_task.html#af713ddc7d68fde45ace722a554f41918">   61</a></span>&#160;    uint32_t <a class="code" href="struct__t_task.html#af713ddc7d68fde45ace722a554f41918">eventFlags</a>;                </div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;} <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga6ea4613577781b54cedcdf93d8c829bd">tTask</a>;</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;<span class="comment">// 任务相关信息结构</span></div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="struct__t_task_info.html">   65</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="struct__t_task_info.html">_tTaskInfo</a> {</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="struct__t_task_info.html#a0c1ef2b42e60232fd2355246df290c68">   66</a></span>&#160;    uint32_t <a class="code" href="struct__t_task_info.html#a0c1ef2b42e60232fd2355246df290c68">delayTicks</a>;                </div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="struct__t_task_info.html#a6871573fefee3ad102e26a09e7a2f493">   67</a></span>&#160;    uint32_t <a class="code" href="struct__t_task_info.html#a6871573fefee3ad102e26a09e7a2f493">prio</a>;                      </div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="struct__t_task_info.html#a1b0c7bd4d79798ef4e0ce23894c9aeb2">   68</a></span>&#160;    uint32_t <a class="code" href="struct__t_task_info.html#a1b0c7bd4d79798ef4e0ce23894c9aeb2">state</a>;                     </div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="struct__t_task_info.html#a4fe7f19d35a11368d300b99348451fdd">   69</a></span>&#160;    uint32_t <a class="code" href="struct__t_task_info.html#a4fe7f19d35a11368d300b99348451fdd">slice</a>;                     </div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="struct__t_task_info.html#a70023864793bcef3ab18d4a66832ca6d">   70</a></span>&#160;    uint32_t <a class="code" href="struct__t_task_info.html#a70023864793bcef3ab18d4a66832ca6d">suspendCount</a>;              </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="struct__t_task_info.html#ae20ace955faaa4fb797b69b75feef3d3">   71</a></span>&#160;    uint32_t <a class="code" href="struct__t_task_info.html#ae20ace955faaa4fb797b69b75feef3d3">stackSize</a>;                 </div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="struct__t_task_info.html#ab8b8202c533d50459f39dfab24e8873d">   72</a></span>&#160;    uint32_t <a class="code" href="struct__t_task_info.html#ab8b8202c533d50459f39dfab24e8873d">stackFree</a>;                 </div><div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;} <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga97ea5eb430cfe81fffcca7e1816cf5a3">tTaskInfo</a>;</div><div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga639ee038febea3c977d37585fcc8a573">tTaskInit</a> (<a class="code" href="struct__t_task.html">tTask</a> *task, <span class="keywordtype">void</span> (*entry) (<span class="keywordtype">void</span> *), <span class="keywordtype">void</span> *param, uint32_t <a class="code" href="struct__t_task.html#a6871573fefee3ad102e26a09e7a2f493">prio</a>, uint32_t *<a class="code" href="struct__t_task.html#a1abf78464029077a8080178b9e04745c">stack</a>, uint32_t size);</div><div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga9b1df557da8292af30d6ff42b48e0755">tTaskSuspend</a> (<a class="code" href="struct__t_task.html">tTask</a> *task);</div><div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gac08bc12c30a810c1ec5c48f330fd509a">tTaskWakeUp</a> (<a class="code" href="struct__t_task.html">tTask</a> *task);</div><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gae626b5c34d62e915c83dabcd77987ddd">tTaskSetCleanCallFunc</a> (<a class="code" href="struct__t_task.html">tTask</a> *task, <span class="keywordtype">void</span> (*<a class="code" href="struct__t_task.html#a9350eb6ea9f174b0711e8835a1543a87">clean</a>) (<span class="keywordtype">void</span> *param), <span class="keywordtype">void</span> *param);</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gad4f55f0276a954401641c0972f0020e3">tTaskForceDelete</a> (<a class="code" href="struct__t_task.html">tTask</a> *task);</div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga0e06a0c4378977bc86236ac4e61ae10e">tTaskRequestDelete</a> (<a class="code" href="struct__t_task.html">tTask</a> *task);</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;uint8_t <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga113466abdb6e224bd4da771809432819">tTaskIsRequestedDelete</a> (<span class="keywordtype">void</span>);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga7e75a9fc2e7d9ca0bf62d519db50de00">tTaskDeleteSelf</a> (<span class="keywordtype">void</span>);</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;<span class="keywordtype">void</span> <a class="code" href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga5713566b36243903f668bd8ecfd41f71">tTaskGetInfo</a> (<a class="code" href="struct__t_task.html">tTask</a> *task, <a class="code" href="struct__t_task_info.html">tTaskInfo</a> *info);</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* TTASK_H */</span><span class="preprocessor"> </span></div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;</div><div class="ttc" id="struct__t_task_info_html_ae20ace955faaa4fb797b69b75feef3d3"><div class="ttname"><a href="struct__t_task_info.html#ae20ace955faaa4fb797b69b75feef3d3">_tTaskInfo::stackSize</a></div><div class="ttdeci">uint32_t stackSize</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00071">tTask.h:71</a></div></div>
<div class="ttc" id="struct__t_task_html_a1abf78464029077a8080178b9e04745c"><div class="ttname"><a href="struct__t_task.html#a1abf78464029077a8080178b9e04745c">_tTask::stack</a></div><div class="ttdeci">uint32_t * stack</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00036">tTask.h:36</a></div></div>
<div class="ttc" id="struct__t_task_html"><div class="ttname"><a href="struct__t_task.html">_tTask</a></div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00031">tTask.h:31</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_gad85a7244ee07814c23914d3cfcc91412"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gad85a7244ee07814c23914d3cfcc91412">tTaskStack</a></div><div class="ttdeci">uint32_t tTaskStack</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00025">tTask.h:25</a></div></div>
<div class="ttc" id="struct__t_task_html_ae1ae004c581e0cc9fd22662535700001"><div class="ttname"><a href="struct__t_task.html#ae1ae004c581e0cc9fd22662535700001">_tTask::eventMsg</a></div><div class="ttdeci">void * eventMsg</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00058">tTask.h:58</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_gae626b5c34d62e915c83dabcd77987ddd"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gae626b5c34d62e915c83dabcd77987ddd">tTaskSetCleanCallFunc</a></div><div class="ttdeci">void tTaskSetCleanCallFunc(tTask *task, void(*clean)(void *param), void *param)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00143">tTask.c:143</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga7e75a9fc2e7d9ca0bf62d519db50de00"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga7e75a9fc2e7d9ca0bf62d519db50de00">tTaskDeleteSelf</a></div><div class="ttdeci">void tTaskDeleteSelf(void)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00217">tTask.c:217</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga9b1df557da8292af30d6ff42b48e0755"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga9b1df557da8292af30d6ff42b48e0755">tTaskSuspend</a></div><div class="ttdeci">void tTaskSuspend(tTask *task)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00083">tTask.c:83</a></div></div>
<div class="ttc" id="struct__t_task_html_a61a5517ac5c5a5149cf4b7d438e5c859"><div class="ttname"><a href="struct__t_task.html#a61a5517ac5c5a5149cf4b7d438e5c859">_tTask::waitEvent</a></div><div class="ttdeci">struct _tEvent * waitEvent</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00057">tTask.h:57</a></div></div>
<div class="ttc" id="struct__t_task_info_html_a6871573fefee3ad102e26a09e7a2f493"><div class="ttname"><a href="struct__t_task_info.html#a6871573fefee3ad102e26a09e7a2f493">_tTaskInfo::prio</a></div><div class="ttdeci">uint32_t prio</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00067">tTask.h:67</a></div></div>
<div class="ttc" id="struct__t_task_html_a365a4afcd9963180dadf380e9edde369"><div class="ttname"><a href="struct__t_task.html#a365a4afcd9963180dadf380e9edde369">_tTask::cleanParam</a></div><div class="ttdeci">void * cleanParam</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00053">tTask.h:53</a></div></div>
<div class="ttc" id="struct__t_node_html"><div class="ttname"><a href="struct__t_node.html">_tNode</a></div><div class="ttdef"><b>Definition:</b> <a href="t_lib_8h_source.html#l00035">tLib.h:35</a></div></div>
<div class="ttc" id="struct__t_task_info_html_a70023864793bcef3ab18d4a66832ca6d"><div class="ttname"><a href="struct__t_task_info.html#a70023864793bcef3ab18d4a66832ca6d">_tTaskInfo::suspendCount</a></div><div class="ttdeci">uint32_t suspendCount</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00070">tTask.h:70</a></div></div>
<div class="ttc" id="struct__t_task_html_a3b197900b58be56e296d46207dec079f"><div class="ttname"><a href="struct__t_task.html#a3b197900b58be56e296d46207dec079f">_tTask::requestDeleteFlag</a></div><div class="ttdeci">uint8_t requestDeleteFlag</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00054">tTask.h:54</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga639ee038febea3c977d37585fcc8a573"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga639ee038febea3c977d37585fcc8a573">tTaskInit</a></div><div class="ttdeci">void tTaskInit(tTask *task, void(*entry)(void *), void *param, uint32_t prio, uint32_t *stack, uint32_t size)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00023">tTask.c:23</a></div></div>
<div class="ttc" id="struct__t_event_html"><div class="ttname"><a href="struct__t_event.html">_tEvent</a></div><div class="ttdef"><b>Definition:</b> <a href="t_event_8h_source.html#l00032">tEvent.h:32</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga97ea5eb430cfe81fffcca7e1816cf5a3"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga97ea5eb430cfe81fffcca7e1816cf5a3">tTaskInfo</a></div><div class="ttdeci">struct _tTaskInfo tTaskInfo</div></div>
<div class="ttc" id="struct__t_task_html_a70023864793bcef3ab18d4a66832ca6d"><div class="ttname"><a href="struct__t_task.html#a70023864793bcef3ab18d4a66832ca6d">_tTask::suspendCount</a></div><div class="ttdeci">uint32_t suspendCount</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00050">tTask.h:50</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga0e06a0c4378977bc86236ac4e61ae10e"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga0e06a0c4378977bc86236ac4e61ae10e">tTaskRequestDelete</a></div><div class="ttdeci">void tTaskRequestDelete(tTask *task)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00183">tTask.c:183</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga6ea4613577781b54cedcdf93d8c829bd"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga6ea4613577781b54cedcdf93d8c829bd">tTask</a></div><div class="ttdeci">struct _tTask tTask</div></div>
<div class="ttc" id="struct__t_task_html_a9350eb6ea9f174b0711e8835a1543a87"><div class="ttname"><a href="struct__t_task.html#a9350eb6ea9f174b0711e8835a1543a87">_tTask::clean</a></div><div class="ttdeci">void(* clean)(void *param)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00052">tTask.h:52</a></div></div>
<div class="ttc" id="struct__t_task_html_a4fe7f19d35a11368d300b99348451fdd"><div class="ttname"><a href="struct__t_task.html#a4fe7f19d35a11368d300b99348451fdd">_tTask::slice</a></div><div class="ttdeci">uint32_t slice</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00048">tTask.h:48</a></div></div>
<div class="ttc" id="struct__t_task_html_a069fafc88eadffde425a5d9fc895d85a"><div class="ttname"><a href="struct__t_task.html#a069fafc88eadffde425a5d9fc895d85a">_tTask::delayNode</a></div><div class="ttdeci">tNode delayNode</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00043">tTask.h:43</a></div></div>
<div class="ttc" id="struct__t_task_html_af713ddc7d68fde45ace722a554f41918"><div class="ttname"><a href="struct__t_task.html#af713ddc7d68fde45ace722a554f41918">_tTask::eventFlags</a></div><div class="ttdeci">uint32_t eventFlags</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00061">tTask.h:61</a></div></div>
<div class="ttc" id="struct__t_task_info_html"><div class="ttname"><a href="struct__t_task_info.html">_tTaskInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00065">tTask.h:65</a></div></div>
<div class="ttc" id="struct__t_task_html_a6871573fefee3ad102e26a09e7a2f493"><div class="ttname"><a href="struct__t_task.html#a6871573fefee3ad102e26a09e7a2f493">_tTask::prio</a></div><div class="ttdeci">uint32_t prio</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00045">tTask.h:45</a></div></div>
<div class="ttc" id="struct__t_task_html_a35ba8bba537f36efd05f084a5531825a"><div class="ttname"><a href="struct__t_task.html#a35ba8bba537f36efd05f084a5531825a">_tTask::waitFlagsType</a></div><div class="ttdeci">uint32_t waitFlagsType</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00060">tTask.h:60</a></div></div>
<div class="ttc" id="struct__t_task_html_a57eb489f59ea6a56ccff2efea7f92c33"><div class="ttname"><a href="struct__t_task.html#a57eb489f59ea6a56ccff2efea7f92c33">_tTask::stackBase</a></div><div class="ttdeci">uint32_t * stackBase</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00037">tTask.h:37</a></div></div>
<div class="ttc" id="struct__t_task_info_html_a0c1ef2b42e60232fd2355246df290c68"><div class="ttname"><a href="struct__t_task_info.html#a0c1ef2b42e60232fd2355246df290c68">_tTaskInfo::delayTicks</a></div><div class="ttdeci">uint32_t delayTicks</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00066">tTask.h:66</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga5713566b36243903f668bd8ecfd41f71"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga5713566b36243903f668bd8ecfd41f71">tTaskGetInfo</a></div><div class="ttdeci">void tTaskGetInfo(tTask *task, tTaskInfo *info)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00242">tTask.c:242</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_gad4f55f0276a954401641c0972f0020e3"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gad4f55f0276a954401641c0972f0020e3">tTaskForceDelete</a></div><div class="ttdeci">void tTaskForceDelete(tTask *task)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00152">tTask.c:152</a></div></div>
<div class="ttc" id="struct__t_task_html_a1b0c7bd4d79798ef4e0ce23894c9aeb2"><div class="ttname"><a href="struct__t_task.html#a1b0c7bd4d79798ef4e0ce23894c9aeb2">_tTask::state</a></div><div class="ttdeci">uint32_t state</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00047">tTask.h:47</a></div></div>
<div class="ttc" id="struct__t_task_html_ab9a5b93b6f7bf200c776df8731d99133"><div class="ttname"><a href="struct__t_task.html#ab9a5b93b6f7bf200c776df8731d99133">_tTask::linkNode</a></div><div class="ttdeci">tNode linkNode</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00040">tTask.h:40</a></div></div>
<div class="ttc" id="struct__t_task_info_html_a4fe7f19d35a11368d300b99348451fdd"><div class="ttname"><a href="struct__t_task_info.html#a4fe7f19d35a11368d300b99348451fdd">_tTaskInfo::slice</a></div><div class="ttdeci">uint32_t slice</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00069">tTask.h:69</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_gac08bc12c30a810c1ec5c48f330fd509a"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#gac08bc12c30a810c1ec5c48f330fd509a">tTaskWakeUp</a></div><div class="ttdeci">void tTaskWakeUp(tTask *task)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00114">tTask.c:114</a></div></div>
<div class="ttc" id="struct__t_task_html_a0c1ef2b42e60232fd2355246df290c68"><div class="ttname"><a href="struct__t_task.html#a0c1ef2b42e60232fd2355246df290c68">_tTask::delayTicks</a></div><div class="ttdeci">uint32_t delayTicks</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00042">tTask.h:42</a></div></div>
<div class="ttc" id="struct__t_task_info_html_ab8b8202c533d50459f39dfab24e8873d"><div class="ttname"><a href="struct__t_task_info.html#ab8b8202c533d50459f39dfab24e8873d">_tTaskInfo::stackFree</a></div><div class="ttdeci">uint32_t stackFree</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00072">tTask.h:72</a></div></div>
<div class="ttc" id="struct__t_task_html_ae20ace955faaa4fb797b69b75feef3d3"><div class="ttname"><a href="struct__t_task.html#ae20ace955faaa4fb797b69b75feef3d3">_tTask::stackSize</a></div><div class="ttdeci">uint32_t stackSize</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00039">tTask.h:39</a></div></div>
<div class="ttc" id="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86_html_ga113466abdb6e224bd4da771809432819"><div class="ttname"><a href="group___xE4_xBB_xBB_xE5_x8A_xA1_xE7_xAE_xA1_xE7_x90_x86.html#ga113466abdb6e224bd4da771809432819">tTaskIsRequestedDelete</a></div><div class="ttdeci">uint8_t tTaskIsRequestedDelete(void)</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8c_source.html#l00199">tTask.c:199</a></div></div>
<div class="ttc" id="struct__t_task_info_html_a1b0c7bd4d79798ef4e0ce23894c9aeb2"><div class="ttname"><a href="struct__t_task_info.html#a1b0c7bd4d79798ef4e0ce23894c9aeb2">_tTaskInfo::state</a></div><div class="ttdeci">uint32_t state</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00068">tTask.h:68</a></div></div>
<div class="ttc" id="struct__t_task_html_a37707d87e42a484588393e5b3683ffbb"><div class="ttname"><a href="struct__t_task.html#a37707d87e42a484588393e5b3683ffbb">_tTask::waitEventResult</a></div><div class="ttdeci">uint32_t waitEventResult</div><div class="ttdef"><b>Definition:</b> <a href="t_task_8h_source.html#l00059">tTask.h:59</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="t_task_8h.html">tTask.h</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
  </ul>
</div>
</body>
</html>
